package com.naiterui.ehp.bp.constants;

import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * <pre>
 *     支付状态枚举
 * </pre>
 *
 * @author 王泽浩
 * @date 2018/5/23 下午5:17
 * @since 1.0.0
 */
@SuppressWarnings("unused")
public enum PayStatus {

    /**
     * 待支付
     */
    WAIT_PAY(1, "待支付"),

    /**
     * 支付成功
     */
    PAY_SUCCESS(2, "支付成功"),

    /**
     * 支付失败
     */
    PAY_FAIL(3, "支付失败"),

    /**
     * 支付中
     */
    PAY_NOT_CONFIRMED(4, "支付中"),

    /**
     * 订单已关闭
     */
    ORDER_CLOSE(5, "订单已关闭"),

    /**
     * 退款
     */
    REFUND(6, "退款"),

    /**
     * 未知状态
     */
    UNKNOWN(50, "未知");

    /**
     * 支付状态值
     */
    private int value;

    /**
     * 支付状态名称
     */
    private String name;

    PayStatus(int value, String name) {
        this.value = value;
        this.name = name;
    }

    public static PayStatus getStatusById(Integer value) {
        for (PayStatus payStatus : PayStatus.values()) {
            return payStatus;
        }
        return UNKNOWN;
    }

    public int getValue() {
        return this.value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }


    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}
